package neuroPoker4.netze.netze;

import neuralNetworks.Functions;
import neuroPoker.netze.BetRoundActionNet;
import neuroPoker.netze.InputSitFactory;
import neuroPoker.netze.PokerInputSit;
import neuroPoker.poker.Enums.Actions;
import neuroPoker.poker.Spieler;
import neuroPoker.poker.Tisch;

public class BetRoundActionNet4 extends BetRoundActionNet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 377029920885841633L;

	public BetRoundActionNet4(int[] hiddenNeurons, Functions actF, double lr,
			int br, Actions action, InputSitFactory sitFact) {
		super(hiddenNeurons, actF, lr, br, action, sitFact);

	}

	public BetRoundActionNet4(BetRoundActionNet4 brnet)
			throws InstantiationException, IllegalAccessException {
		super(brnet);
	}

	@Override
	protected int getAnzInputNeurons() {
		return getInputSit4Br().getAnzInputNeurons();
	}

	@Override
	public PokerInputSit getNewInputSit(Tisch tisch, Spieler spieler) {
		PokerInputSit sit = getInputSit4Br();
		sit.init(tisch, spieler);
		return sit;
	}

	PokerInputSit getInputSit4Br() {
		return sitFact.getInputSit(action, br);
	}

	@Override
	public BetRoundActionNet clone() {
		try {
			return new BetRoundActionNet4(this);
		} catch (InstantiationException | IllegalAccessException e) {
			e.printStackTrace();
			System.exit(1);
			return null;
		}
	}

}
